package com.shell.customer.tag.controller;

import com.shell.bee.base.annotation.Logging;
import com.shell.bee.base.utils.StringUtil;
import com.shell.bee.entity.mvc.RetMsg;
import com.shell.bee.mvc.controller.BaseController;
import com.shell.bee.persistence.model.PageLimit;
import com.shell.customer.base.service.CusTagService;
import com.shell.customer.po.CusTag;
import com.shell.customer.tag.vo.CusTagVo;
import com.shell.governor.modules.po.PubBusiness;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CusTagController extends BaseController {
	@Autowired
	private CusTagService cusTagService;

	@RequestMapping
	@Logging(module = "������������", methods = "����������������")
	public List<CusTag> getCusTagListByPage(PageLimit limit, CusTag cusTag) {
		return this.cusTagService.selectTagsByPage(limit, cusTag);
	}

	@RequestMapping
	@Logging(module = "������������", methods = "������������")
	public RetMsg addOrUpdateCusTag(CusTag tag, String busIds, String bizCodes) {
		String str = "����";
		if (!StringUtil.emptyAndNull(tag.getTagId())) {
			str = "����";
		}
		if (this.cusTagService.saveOrUpdateCusTag(tag, busIds, bizCodes) > 0) {
			return new RetMsg("success", str + "��������������");
		}
		return new RetMsg("error", str + "������������������");
	}

	@RequestMapping
	@Logging(module = "������������", methods = "������������������������")
	public CusTagVo getCusTagAndBusRel(String tagId) {
		return this.cusTagService.selectCusTagAndBusRel(tagId);
	}

	@RequestMapping
	@Logging(module = "������������", methods = "��������������������������")
	public RetMsg deleteCusTag(String tagId) {
		if (this.cusTagService.checkCanDeleteTag(tagId)) {
			return new RetMsg("error", "������������������������������");
		}
		if (this.cusTagService.deleteCusTag(tagId) > 0) {
			return new RetMsg("success", "������������������");
		}
		return new RetMsg("error", "������������������");
	}

	@RequestMapping
	@Logging(module = "������������", methods = "������������������������")
	public boolean checkTagCode(String tagId, String tagCode) {
		return this.cusTagService.checkTagCode(tagId, tagCode);
	}

	@RequestMapping
	@Logging(module = "������������", methods = "����/��������������������")
	public List<PubBusiness> getBusList() {
		return this.cusTagService.selectBusList();
	}

	@RequestMapping
	@Logging(module = "������������", methods = "������������������������")
	public boolean checkTagName(String tagId, String tagName) {
		return this.cusTagService.checkTagName(tagId, tagName);
	}

	@RequestMapping
	@Logging(module = "������������", methods = "������������������")
	public List<CusTag> getCusTagForEnt(String entId) {
		return this.cusTagService.getCusTagForEnt(entId);
	}

	@RequestMapping
	@Logging(module = "������������", methods = "����������������")
	public List<CusTag> getCusTagByGrp(String grpId) {
		return this.cusTagService.selectCusTagByGrp(grpId);
	}
}
